The disclosure relates generally to optimizing the performance of rule engines, and more specifically to a system and method for using an aggregation model to enhance the performance of RETE-based rule engines.
Typical management systems that track and respond to changes across large numbers of machines, images, and services need to be capable of responding to unscheduled occurrences. Thus, code written for these management systems must be able to specify actions to be taken when specific situations arise, e.g., event-driven programming that defines responses to conditions.
For example, forwarding chaining systems are systems that are structured in the form of “condition/action” rules, or rules of the form “IF [some condition hold] THEN [perform some action].” Such rules are referred to as forward chaining systems because each rule execution traverses a link in a chain of system states from past state to further states. In this approach, the states of system components are not made explicit, and each rule's conditions only specify as much information as is required to determine if the rule should be executed, which is only a subset of the system's available state information. In particular, systems with large numbers of components may be difficult for forward chaining approaches because it may be inefficient in tracking all potential state changes and determining which rule should be applied in a timely fashion.